Theft detection system

ABSTRACT

A method includes supporting, by a support, a bag containing one or more items of an order and detecting, by a sensor coupled to an end of the support, a weight of the bag and the one or more items when the bag is suspended on the support such that the weight of the bag and the one or more items is exerted on the support. The method also includes comparing, by a hardware processor, the detected weight to an expected weight of the order and communicating, by the hardware processor, an alert when the expected weight is unequal to the detected weight.

BACKGROUND

The present invention relates to a theft detection system, and morespecifically, to a system that detects theft as the theft is occurringin certain embodiments.

Stores are increasingly implementing self-checkout solutions in whichcustomers scan and pay for items without interacting with a storeemployee. These solutions include installing checkout stations, wherethe customers scan, bag, and pay for their items, and scan and goapplications on mobile devices, in which customers scan items whileshopping and pay for the items before exiting the store. Thesesolutions, however, rely on the honesty of the customer and, thus,increase the risk of theft. For example, customers can take itemswithout scanning or paying for them and without a store employeenoticing.

Customers are also increasingly bringing and using their own bags (e.g.,eco-bags) to hold items while shopping. This practice further increasesthe risk of theft, because customers can hide items in the bagunderneath purchased items.

SUMMARY

According to an embodiment, a method includes supporting, by a support,a bag containing one or more items of an order and detecting, by asensor coupled to an end of the support, a weight of the bag and the oneor more items when the bag is suspended on the support such that theweight of the bag and the one or more items is exerted on the support.The method also includes comparing, by a hardware processor, thedetected weight to an expected weight of the order and communicating, bythe hardware processor, an alert when the expected weight is unequal tothe detected weight.

According to another embodiment, a system includes a support, a sensor,and a computer system. The support supports a bag containing one or moreitems of an order. The sensor is coupled to an end of the support anddetects a weight of the bag and the one or more items when the bag issuspended on the support such that the weight of the bag and the one ormore items is exerted on the support. The computer system iscommunicatively coupled to the sensor and includes a memory and ahardware processor. The hardware processor compares the detected weightto an expected weight of the order and communicates an alert when theexpected weight is unequal to the detected weight.

According to another embodiment, a system includes a support, a sensor,a scanner, and a computer system. The support supports a bag containingone or more items of an order. The sensor is coupled to an end of thesupport and detects a weight of the bag and the one or more items whenthe bag is suspended on the support such that the weight of the bag andthe one or more items is exerted on the support. The scanner scans anidentifier on the bag. The computer system is communicatively coupled tothe sensor and includes a memory and a hardware processor. The hardwareprocessor determines a weight of the bag based on the scanned identifierand removes the weight of the bag from the detected weight. The hardwareprocessor compares the detected weight to an expected weight of theorder and communicates an alert when the expected weight is unequal tothe detected weight.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example system;

FIGS. 2A through 2C illustrate an example checkout station of the systemof FIG. 1 ;

FIG. 2D illustrates an example exit station of the system of FIG. 1 ;

FIGS. 3A through 3C illustrate example supports and sensors of thesystem of FIG. 1 ;

FIG. 4 illustrates a portion of the system of FIG. 1 ;

FIG. 5 is a flowchart showing a process for detecting theft using thesystem of FIG. 1 .

DETAILED DESCRIPTION

This disclosure contemplates a theft detection system. Generally, thesystem implements a support (e.g., a bar, a hook, etc.) on whichcustomers can hang bags of items. These supports may be installed atcheckout stations and/or exit stations. A sensor coupled to the supportdetects a weight of the bag and the items within the bag. A computersystem compares the detected weight with an expected weight of scanneditems. When these weights are unequal, the computer system communicatesan alert, which may prompt a store employee to inspect the bag or toscrutinize the customer's purchase. In this manner, the system detectstheft as the theft is occurring in certain embodiments.

FIG. 1 illustrates an example system 100. As seen in FIG. 1 , the system100 includes one or more devices 104, a network 106, one or morecheckout stations 108, one or more exit stations 110, an item trackingserver 112, and a database 113. The system 100 may be implemented in astore and provides a user 102 with a variety of ways to checkout and payfor items. Generally, the system 100 tracks the items purchased by oneor more users 102 and may detect when a user 102 takes an item withoutpurchasing it.

A user 102 uses a device 104 to interact with other components of thesystem 100. For example, a user 102 may use a device 104 to scan itemsthat the user 102 wishes to purchase. The user 102 may also use thedevice 104 to pay for items that the user 102 desires to purchase. Thedevice 104 may execute an application that scans identification codes onitems that the user 102 desires to purchase (e.g., bar codes or QRcodes). The application may also provide the user 102 an option to payfor scanned items.

The system 100 may include any suitable number of devices 104. In theexample of FIG. 1 , the system 100 includes a device 104A used by a user102A and a device 104B used by a user 102B. The device 104A includes aprocessor 114A and a memory 116A, which are configured to perform any ofthe functions of a device 104 described herein. Additionally, a device1046 includes a processor 1146 and a memory 1166, which are configuredto perform any of the functions of a device 104 described herein.

The processor 114 is any electronic circuitry, including, but notlimited to microprocessors, application specific integrated circuits(ASIC), application specific instruction set processor (ASIP), and/orstate machines, that communicatively couples to memory 116 and controlsthe operation of the device 104. The processor 114 may be 8-bit, 16-bit,32-bit, 64-bit or of any other suitable architecture. The processor 114may include an arithmetic logic unit (ALU) for performing arithmetic andlogic operations, processor registers that supply operands to the ALUand store the results of ALU operations, and a control unit that fetchesinstructions from memory and executes them by directing the coordinatedoperations of the ALU, registers and other components. The processor 114may include other hardware that operates software to control and processinformation. The processor 114 executes software stored on memory toperform any of the functions described herein. The processor 114controls the operation and administration of the device 104 byprocessing information (e.g., information received from the devices 104,network 106, item tracking server 112, and memory 116). The processor114 may be a programmable logic device, a microcontroller, amicroprocessor, any suitable processing device, or any suitablecombination of the preceding. The processor 114 is not limited to asingle processing device and may encompass multiple processing devices.

The memory 116 may store, either permanently or temporarily, data,operational software, or other information for the processor 114. Thememory 116 may include any one or a combination of volatile ornon-volatile local or remote devices suitable for storing information.For example, the memory 116 may include random access memory (RAM), readonly memory (ROM), magnetic storage devices, optical storage devices, orany other suitable information storage device or a combination of thesedevices. The software represents any suitable set of instructions,logic, or code embodied in a computer-readable storage medium. Forexample, the software may be embodied in the memory 116, a disk, a CD,or a flash drive. In particular embodiments, the software may include anapplication executable by the processor 114 to perform one or more ofthe functions described herein.

Devices 104 include any appropriate device for communicating withcomponents of system 100 over network 106. As an example and not by wayof limitation, device 104 may be a computer, a laptop, a wireless orcellular telephone, an electronic notebook, a personal digitalassistant, a tablet, or any other device capable of receiving,processing, storing, and/or communicating information with othercomponents of system 100. Device 104 may also include a user interface,such as a display, a microphone, keypad, or other appropriate terminalequipment usable by user 102. Device 104 may include a hardwareprocessor, memory, and/or circuitry configured to perform any of thefunctions or actions of device 104 described herein. For example, asoftware application designed using software code may be stored in thememory and executed by the processor to perform the functions of device104.

The system 100 includes one or more bags 118 that users 102 use to holditems that the users 102 desire to purchase. The users 102 may bringtheir own bags 118, or a store implementing the system 100 may providethe bags 118. The bags 118 may be reusable bags that cut down on the useof disposable bags, which reduces waste. In the example of FIG. 1 , theuser 102A uses a bag 118A, the user 102B uses a bag 118B, and the user102C uses the bag 118C. Although bags 118 may be good from anenvironmental standpoint, the bags 118 introduce a risk of theft. Forexample, a user 102 may attempt to hide items in the bag 118 underneathpurchased items. The system 100 can detect when a bag 118 contains anitem that a user 102 did not purchase.

The network 106 allows communication between and amongst the variouscomponents of the system 100. This disclosure contemplates the network106 being any suitable network operable to facilitate communicationbetween the components of the system 100. The network 106 may includeany interconnecting system capable of transmitting audio, video,signals, data, messages, or any combination of the preceding. Thenetwork 106 may include all or a portion of a public switched telephonenetwork (PSTN), a public or private data network, a local area network(LAN), a metropolitan area network (MAN), a wide area network (WAN), alocal, regional, or global communication or computer network, such asthe Internet, a wireline or wireless network, an enterprise intranet, orany other suitable communication link, including combinations thereof,operable to facilitate communication between the components.

As discussed previously, the system 100 provides the users 102 a varietyof ways to scan and pay for their items. For example, the users 102 mayuse their devices 104 to scan and pay for their items. Additionally, auser 102 may use a checkout station 108 to scan and/or pay for theiritems. For example, the user 102 may bring items to a checkout station108 to scan the items and to pay for the items. As another example, auser 102 may use a device 104 to scan items and then bring the items toa checkout station 108 to pay for the items.

Security checks may be performed at one or more exit stations 110. Auser 102 may bring purchased items to an exit station 110 to exit astore implementing the system 100. A store employee located at the exitstation 110 may review a receipt provided by the user 102 and inspectthe items purchased by the user 102 to determine whether the user 102paid for all the items. If the user 102 is hiding an item underneathpurchased items in a bag 118, then the store employee may encounterdifficulty detecting the hidden item. As a result, the user 102 mayleave the store without paying for all the items.

The item tracking server 112 tracks the items purchased by the users102. As seen in the example of FIG. 1 , the item tracking server 112includes a processor 120 and a memory 122, which are configured toperform any of the functions of the item tracking server 112 describedherein.

The processor 120 is any electronic circuitry, including, but notlimited to microprocessors, application specific integrated circuits(ASIC), application specific instruction set processor (ASIP), and/orstate machines, that communicatively couples to memory 122 and controlsthe operation of the item tracking server 112. The processor 120 may be8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture. Theprocessor 120 may include an arithmetic logic unit (ALU) for performingarithmetic and logic operations, processor registers that supplyoperands to the ALU and store the results of ALU operations, and acontrol unit that fetches instructions from memory and executes them bydirecting the coordinated operations of the ALU, registers and othercomponents. The processor 120 may include other hardware that operatessoftware to control and process information. The processor 120 executessoftware stored on memory to perform any of the functions describedherein. The processor 120 controls the operation and administration ofthe item tracking server 112 by processing information (e.g.,information received from the devices 104, network 106, database 113,and memory 122). The processor 120 may be a programmable logic device, amicrocontroller, a microprocessor, any suitable processing device, orany suitable combination of the preceding. The processor 120 is notlimited to a single processing device and may encompass multipleprocessing devices.

The memory 122 may store, either permanently or temporarily, data,operational software, or other information for the processor 120. Thememory 122 may include any one or a combination of volatile ornon-volatile local or remote devices suitable for storing information.For example, the memory 122 may include random access memory (RAM), readonly memory (ROM), magnetic storage devices, optical storage devices, orany other suitable information storage device or a combination of thesedevices. The software represents any suitable set of instructions,logic, or code embodied in a computer-readable storage medium. Forexample, the software may be embodied in the memory 122, a disk, a CD,or a flash drive. In particular embodiments, the software may include anapplication executable by the processor 120 to perform one or more ofthe functions described herein.

The database 113 stores information about the items purchased by a user102. For example, the database 113 may store the weights and/or pricesof particular items in the store. The database 113 may communicateinformation about purchased items to the item tracking server 112 uponrequest.

FIGS. 2A and 2B illustrate an example checkout station 108. FIG. 2Aillustrates a front view of the checkout station 108, and FIG. 2Billustrates a top view of the checkout station 108. As seen in FIGS. 2Aand 2B, the checkout station 108 includes a scanner 202, a baggingstation 204, a display 206, a support 208, and a light 210. Generally, auser 102 scans and pays for items at the checkout station 108. Inparticular embodiments, the support 208 allows the system 100 to detectwhen the user 102 has not paid for all items.

The scanner 202 may be any suitable scanner that scans a tag or code onan item to identify that item. For example, the scanner 202 may be a barcode scanner or an RFID scanner. The scanner 202 may scan a bar code oran RFID tag on the item. Scanning the bar code or the RFID tag mayproduce a unique identifier that identifies the item. The checkoutstation 108 may use the identifier to identify the item and to determinea price for the item.

The bagging station 204 includes an area for users 102 to sort and/orstore scanned items. For example, the bagging station 204 may includeone or more bags, in which the users 102 may place scanned items. Users102 who have brought their own bags 118 may opt to place scanned itemsinto one or more bags 118 rather than the disposable bags provided atthe bagging station 204.

The display 206 provides information about purchased items to the user102. For example, the display 206 may identify the items scanned by thescanner 202 and provide the prices for these items. The display 206 mayalso provide a running total of the scanned items. Additionally, thedisplay 206 may provide instructions to the user 102 while using thecheckout station 108.

The user 102 may hang a bag 118 of items on the support 208. Forexample, a user 102 may remove a bag 118 from the user's 102 shoulderand hang the bag 118 on the support 208 to free up the user's 102 armsduring checkout. The support 208 may be coupled to a weight sensor thatdetects the weight of the bag 118 and the items in the bag 118 as thebag 118 hangs on the support 208. The support 208 may be positioned nearthe scanner 202, so that a user 102 may reach into the bag 118 to takeout an item and scan the item on the scanner 202 with ease.

As the user 102 scans items from the bag 118, the checkout station 108may report the scanned item to the item tracking server 112. The itemtracking server 112 may track the weight of the scanned items. Forexample, the item tracking server 112 may retrieve the weights ofscanned items from the database 113. When the user 102 indicates thatall items have been scanned, the item tracking server 112 may comparethe total weight of the scanned items with the weight detected by theweight sensor coupled to the support 208 (e.g., an initial weight beforethe user 102 scanned any items). If these weights are unequal, the itemtracking server 112 may communicate an alert indicating that the user102 has not scanned all items. This disclosure contemplates that theitem tracking server 112 communicates the alert when the total weight ofthe scanned items and the weight detected by the support 208 and theweight sensor are unequal past a threshold (e.g., a quarter of a pound).

The light 210 may activate when the alert is communicated indicatingthat the user 102 has not scanned all items. A store employee may seethe activated light 210 and approach the checkout station 108 to assistthe user 102. The store employee may also approach the checkout station108 to investigate whether the user 102 is attempting to take an itemwithout purchasing that item. In this manner, the checkout station 108detects theft as the theft is occurring in certain embodiments.

FIG. 2C illustrates an example checkout station 108. As seen in FIG. 2C,the checkout station 108 includes a display 206, a support 208, a light210, and a base 212. Generally, the checkout station 108 of FIG. 2Cresembles a kiosk. A user 102 who has scanned items using a device 104may use the checkout station 108 of FIG. 2C to pay for the items. Forexample, the user 102 may have used a device 104 to scan the items whenthe user 102 took the item and placed it into a bag 118. The itemtracking server 112 may track the items as the user 102 scans the itemsusing the device 104. The user 102 may use the kiosk to pay for theitems in the bag 118 before leaving the store.

The user 102 may bring a bag 118 of scanned items to the checkoutstation 108. The user 102 may then hang the bag 118 on the support 208to free up the user's 102 arms while paying for the items. As withprevious examples, the support 208 is coupled to a weight sensor thatdetects a weight of the bag 118 and the items in the bag 118. Thecheckout station 108 reports the detected weight to the item trackingserver 112. As described previously, the item tracking server 112 thencompares the detected weight with the total weight of the scanned items.For example, the item tracking server 112 may retrieve a weight of anitem from the database 113 when the user 102 scans the item using thedevice 104. The item tracking server 112 may keep a running total of theweight of scanned items. The item tracking server 112 may then comparethat total weight to the weight detected by the weight sensor and thesupport 208. When the total weight of scanned items and the detectedweight are unequal, for example, unequal beyond the threshold, the itemtracking server 112 communicates an alert. The light 210 on the checkoutstation 108 activates in response to the alert. When a store employeesees the activated light 210, the store employee may approach thecheckout station 108 to assist the user 102 and/or to investigatewhether the user 102 is attempting to take an item without purchasingthe item. In this manner, the checkout station 108 detects theft as thetheft is occurring in certain embodiments.

FIG. 2D illustrates an example exit station 110 of the system 100 ofFIG. 1 . As seen in FIG. 2D, a support 208 and a light 210 may bepositioned near the exit station 110. Additionally, a store employee 214may be positioned near the exit station 110. Generally, the support 208positioned near the exit station 110 may detect theft by users 102 whouse their devices 104 to scan and pay for items. The item trackingserver 112 may track the total weight of the items scanned and paid forby the user 102. When the users 102 bring a bag 118 of items to the exitstation 110, the store employee 214 may ask the users 102 to hang thebag of items 118 on the support 208. The support 208 may be coupled to aweight sensor that detects the weight of the bag 118 of items. Thedetected weight may then be communicated to the item tracking server112.

The item tracking server 112 compares the detected weight with the totalweight of scanned and/or purchased items. For example, the item trackingserver 112 may retrieve the weight of scanned items from the database113 when a user 102 scans the items using the device 104. Alternativelyor additionally, the item tracking server 112 may track the weight ofpurchased items when the user 102 pays for the items using the device104. When the detected weight is unequal, for example unequal past athreshold, from the total weight of scanned or purchased items, the itemtracking server 112 communicates an alert. In response to the alert, thelight 210 may activate. When the store employee 214 sees the activatedlight 210, the store employee 214 may investigate whether the user 102has paid for the items in the bag 118. For example, the store employee214 may look through the bag 118 and compare the items in the bag 118against a receipt on the user's device 104. In this manner, the exitstation 110 provides a layer of security that detects theft as it isoccurring in certain embodiments.

If a user 102 used a checkout station 108 rather than a device 104 topay for items, the user 102 may present a receipt to the store employee214. The store employee 214 may review the receipt and look through thebag 118 of the user 102 to determine whether the user 102 has paid forthe items in the bag 118.

FIGS. 3A through 3C illustrate example supports 208 of the system 100 ofFIG. 1 . Generally, the supports 208 are coupled at an end to a sensor302. In particular embodiments, a user 102 may hang a bag 118 from thesupport 208. The sensor 302 may detect a weight of the bag 118, and theitems in the bag 118 as the support 208 supports the weight of the bag118 and the items in the bag 118.

In the example of FIG. 3A, the support 208 is a bar or platform. Thesensor 302 is coupled to a back end of the support 208. The sensor 302may be a tension sensor that detects a tension created by the weight ofa bag 118 hanging on the support 208. The tension may be directed fromthe sensor 302 towards the support 208. The sensor 302 may convert thedetected tension to a weight. The heavier the bag 118 and the items inthe bag 118 are, the more tension is detected by the sensor 302. Thesensor 302 may communicate the detected weight to the item trackingserver 112.

In the example of FIG. 3B, the support 208 is a hook and the sensor 302is coupled to an end of the hook. The other end of the hook may bepointed, and may support the weight of a bag 118 and the items in thebag 118. The user 102 may hang the bag 118 on the support 208. Asdescribed previously, the weight of the bag 118 and items in the bag 118may cause a tension force from the sensor 302 to the support 208. Thesensor 302 may detect the tension and may convert that tension to adetected weight. The sensor 302 may then communicate the detected weightto the item tracking server 112.

In FIG. 3C, the support 208 is a bar or platform. The sensor 302 iscoupled to a back side of the support 208. A user 102 may hang a bag 118on support 208 or the user 102 may place the bag on top of the support208. The weight of the bag 118 and the items in the bag 118 may create atension force from the sensor 302 to the support 208. The sensor 302detects the tension and converts the tension to a detected weight. Thesensor 302 then reports the detected weight to the item tracking server112.

FIG. 4 illustrates a portion of the system 100 of FIG. 1 . Even thoughthe example of FIG. 4 does not include every component of the system100, the absence of these components does not indicate their removalfrom the system 100.

As seen in FIG. 4 , the system 100 includes a support 208 coupled to asensor 302. A sensor 302 may be a tension sensor coupled to an end ofthe support 208. A user 102 may hang a bag 118 of items onto support208. The sensor 302 may then detect a weight of the bag 118 and theitems in the bag 118. The support 208 and the sensor 302 may be locatedat a checkout station 108 and/or an exit station 110.

If the support 208 is located at a checkout station 108, the user 102may use a scanner 202 at the checkout station 108 to scan the items inthe bag 118. If the support 208 being used is located at an exit station110, then the user 102 has presumably already scanned and/or paid forthe items in the bag 118.

The sensor 302 detects a weight of the bag 118 and the items in the bag118. The sensor 302 then reports the detected weight 402 to the itemtracking server 112. The item tracking server 112 then determines anexpected weight 406 of the items in the bag 118. For example, if theuser 102 is scanning items at a checkout station 108 then the itemtracking server 112 may receive an identification of the items 404 asthe user scans the items 404 at the checkout station 108. The itemtracking server 112 communicates the identification of these items 404to the database 113. In response, the database 113 returns the weight ofthe items 404 to the item tracking server 112. The item tracking server112 then totals these weights to determine the expected weight 406. Asanother example, if the user 102 uses a device 104 to scan items, thenthe item tracking server 112 receives the identification of the items404 from the devices 104. The item tracking server 112 then communicatesthe identification of these items 404 to the database 113. In response,the database 113 returns the weights of the items 404. The item trackingserver 112 sums these weights to determine the expected weight 406. Incertain embodiments the item tracking server 112 may keep a runningtotal for the expected weight 406. For example, the item tracking server112 may add the weight of an item 404 to the expected weight 406 whenthat item 404 is scanned.

The item tracking server 112 compares the weight 402 with the expectedweight 406 to determine if the user 102 has scanned or paid for allitems in the bag 118. When the weight 402 is unequal (e.g., unequal pasta threshold) from the expected weight 406, the item tracking server 112determines that the user 102 has not paid for all the items in the bag118. For example, if the weight 402 exceeds the expected weight 406 pasta threshold, then this may indicate that the bag 118 contains an itemthat is unaccounted for. In response, the item tracking server 112generates and communicates an alert 408. In particular embodiments, alight 210 may activate in response to the alert 408.

In particular embodiments, the bag 118 includes an identifier 410. Theidentifier 410 may be a code such as a bar code or a QR code. Theidentifier 410 may be scanned by a scanner 202 and/or by a device 104 toidentify the bag 118. The database 113 may contain the weight of the bag118. These weights may represent the weight of the bag 118 when nothingis in the bag 118. A user 102 and/or a store implementing the system 100may have registered the bag 118 along with its empty weight. Theregistration process allows the database 113 to link bags 118 with theirempty weights. When a user 102 scans the identifier 410 using a device104 or a scanner 202, the item tracking server 112 may determine theidentity of the bag 118 and retrieve the bag weight 412 from thedatabase 113. The bag weight 412 may be the empty weight of the bag 118.The item tracking server 112 may deduct the bag weight 412 from thedetected weight 402 before comparing the weight 402 with the expectedweight 406. By removing the bag weight 412 from the weight 402, theweight 402 more closely represents the weight of the items in the bag118 and may provide for more accurate theft detection. In embodimentswhere the weight of the bag 118 is unknown (e.g., because the bag 118does not include an identifier 410), the item tracking server 112 maydeduct a standard weight or a statistical average weight for a bag 118(e.g., an eco-bag). Alternatively, the item tracking server 112 mayincrease the inequality threshold to accommodate larger deviations ofthe detected weight 402 from the expected weight 406. Stateddifferently, the item tracking server 112 may increase the inequalitythreshold to account for the detected weight 402 including the weight ofthe bag 118.

FIG. 5 is a flowchart of a process 500 for detecting theft using thesystem 100 of FIG. 1 . Generally, various components of the system 100perform the steps of process 500. In particular embodiments, byperforming process 500, the system 100 detects theft as the theft isoccurring.

In step 502, a support 208 supports a weight of a bag 118 and items inthe bag 118. The support 208 may be located at a checkout station 108and/or an exit station 110. The support 208 may be a bar, a hook, or aplatform. In step 504, a sensor 302 detects a weight of the bag 118 andthe items in the bag 118. The sensor 302 may be coupled to an end of thesupport 208. When the support 208 is supporting the weight of the bag118 and the items in the bag 118, a tension force may be created fromthe sensor 302 to the support 208. The sensor 302 may detect the tensionand convert the detected tension to a weight. The sensor 302 may thencommunicate the detected weight to the item tracking server 112.

In step 506, the item tracking server 112 may determine whether anidentifier 410 of the bag 118 was scanned. If the identifier 410 was notscanned (e.g., because the bag 118 did not have an identifier 410), theprocess 500 may proceed to step 510. In some embodiments, the itemtracking server 112 deducts a standard weight or a statistical averageweight of a bag 118 from the detected weight 402 when the identifier 410is not scanned. Alternatively, the item tracking server 112 may increasethe inequality threshold to accommodate larger deviations of thedetected weight 402 from the expected weight 406. Stated differently,the item tracking server 112 may increase the inequality threshold toaccount for the detected weight 402 including the weight of the bag 118.

If the identifier 410 of the bag 118 was scanned, then the item trackingserver 112 may retrieve the weight 412 of the bag from the database 113.The item tracking server 112 then deducts the weight 412 of the bag fromthe detected weight 402 in step 508. In step 510, the item trackingserver 112 compares the weight 402 to the expected weight 406 of theorder. The expected weight 406 may be determined based on the itemsscanned by the user 102. For example, as the items 404 are scanned bythe user 102, the item tracking server 112 may retrieve the weight ofthe scanned item 404 from the database 113. The item tracking server 112may keep a running total of the weight of the items 404. This runningtotal may be the expected weight 406.

The item tracking server 112 then determines whether the weight 402 isunequal from the expected weight 406. For example, the item trackingserver 112 may determine whether the weight 402 is unequal from theexpected weight 406 past a threshold (e.g., the inequality thresholddiscussed above). In particular embodiments, the item tracking server112 may not perform step 512 until the user 102 indicates that all itemshave been scanned. The user 102 may indicate that all items have beenscanned by attempting to pay for the items in the bag 118. If the weight402 is not unequal past the threshold from the expected weight 406, thenprocess 500 may conclude. If the weight 402 is unequal past thethreshold from the expected weight 406, then the item tracking server112 communicates an alert 408 in step 514. In certain embodiments, alight 210 activates in response to the alert 408. A store employee whosees the activated light 210 may approach to assist the user 102.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

In the following, reference is made to embodiments presented in thisdisclosure. However, the scope of the present disclosure is not limitedto specific described embodiments. Instead, any combination of thefollowing features and elements, whether related to differentembodiments or not, is contemplated to implement and practicecontemplated embodiments. Furthermore, although embodiments disclosedherein may achieve advantages over other possible solutions or over theprior art, whether or not a particular advantage is achieved by a givenembodiment is not limiting of the scope of the present disclosure. Thus,the following aspects, features, embodiments and advantages are merelyillustrative and are not considered elements or limitations of theappended claims except where explicitly recited in a claim(s). Likewise,reference to “the invention” shall not be construed as a generalizationof any inventive subject matter disclosed herein and shall not beconsidered to be an element or limitation of the appended claims exceptwhere explicitly recited in a claim(s).

Aspects of the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.”

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

What is claimed is:
 1. A method comprising: supporting, by a support, ahandle of a bag containing one or more items of an order as the baghangs by the handle on the support; detecting, by a sensor coupled to anend of the support such that the support extends laterally from thesensor and parallel to the ground, a weight of the bag and the one ormore items when the bag is hanging by the handle on the support suchthat the weight of the bag and the one or more items is exerted on thesupport through the handle; comparing, by a hardware processor, thedetected weight to an expected weight of the order; and communicating,by the hardware processor, an alert when the expected weight is unequalto the detected weight.
 2. The method of claim 1, further comprisingconverting, by the sensor, a tension experienced by the sensor to thedetected weight.
 3. The method of claim 1, further comprising scanning,by a scanner, an identifier on the bag.
 4. The method of claim 3,further comprising: determining, by the hardware processor, a weight ofthe bag based on the scanned identifier; and removing, by the hardwareprocessor, the weight of the bag from the detected weight beforecomparing the detected weight to the expected weight.
 5. The method ofclaim 1, further comprising activating a light in response to the alertbeing communicated.
 6. The method of claim 1, further comprisingdetermining, by the hardware processor, the expected weight as the oneor more items are scanned.
 7. The method of claim 1, wherein thedetected weight exceeding the expected weight indicates that an item inthe bag is unaccounted for.
 8. A system comprising: a support configuredto support a handle of a bag containing one or more items of an order asthe bag hangs by the handle on the support; a sensor coupled to an endof the support such that the support extends laterally from the sensorand parallel to the ground, the sensor configured to detect a weight ofthe bag and the one or more items when the bag is hanging by the handleon the support such that the weight of the bag and the one or more itemsis exerted on the support through the handle; a computer systemcommunicatively coupled to the sensor, the computer system comprising amemory and a hardware processor configured to: compare the detectedweight to an expected weight of the order; and communicate an alert whenthe expected weight is unequal to the detected weight.
 9. The system ofclaim 8, wherein the sensor is a tension sensor configured to convert atension experienced by the sensor to the detected weight.
 10. The systemof claim 8, further comprising a scanner configured to scan anidentifier on the bag.
 11. The system of claim 10, wherein the hardwareprocessor is further configured to: determine a weight of the bag basedon the scanned identifier; and remove the weight of the bag from thedetected weight before comparing the detected weight to the expectedweight.
 12. The system of claim 8, further comprising a light configuredto activate in response to the alert being communicated.
 13. The systemof claim 8, wherein the hardware processor is further configured todetermine the expected weight as the one or more items are scanned. 14.The system of claim 8, wherein the detected weight exceeding theexpected weight indicates that an item in the bag is unaccounted for.15. A system comprising: a support configured to support a handle of abag containing one or more items of an order as the bag hangs by thehandle on the support; a sensor coupled to an end of the support suchthat the support extends laterally from the sensor and parallel to theground, the sensor configured to detect a weight of the bag and the oneor more items when the bag is hanging by the handle on the support suchthat the weight of the bag and the one or more items is exerted on thesupport through the handle; a scanner configured to scan an identifieron the bag; a computer system communicatively coupled to the sensor, thecomputer system comprising a memory and a hardware processor configuredto: determine a weight of the bag based on the scanned identifier;remove the weight of the bag from the detected weight; compare thedetected weight to an expected weight of the order; and communicate analert when the expected weight is unequal to the detected weight. 16.The system of claim 15, wherein the sensor is a tension sensorconfigured to convert a tension experienced by the sensor to thedetected weight.
 17. The system of claim 15, wherein the weight of thebag is stored prior to detecting the weight of the bag and the one ormore items.
 18. The system of claim 17, wherein the hardware processoris further configured to retrieve the weight of the bag based on thescanned identifier.
 19. The system of claim 15, further comprising alight configured to activate in response to the alert beingcommunicated.
 20. The system of claim 15, wherein the hardware processoris further configured to determine the expected weight as the one ormore items are scanned.